package cn.minhx.lab.design_patterns.abstract_factory.f1.factory.impl;

import cn.minhx.lab.design_patterns.abstract_factory.f1.button.IButton;
import cn.minhx.lab.design_patterns.abstract_factory.f1.button.impl.WindowsIButton;
import cn.minhx.lab.design_patterns.abstract_factory.f1.checkbox.ICheckbox;
import cn.minhx.lab.design_patterns.abstract_factory.f1.checkbox.impl.WindowsICheckbox;
import cn.minhx.lab.design_patterns.abstract_factory.f1.factory.IGUIFactory;

/**
 * Each concrete factory extends basic factory and responsible for creating
 * products of a single variety.
 */
public class WindowsFactory implements IGUIFactory {

    @Override
    public IButton createButton() {
        System.out.println("WindowsFactory createButton()");
        return new WindowsIButton();
    }

    @Override
    public ICheckbox createCheckbox() {
        System.out.println("WindowsFactory createCheckbox()");
        return new WindowsICheckbox();
    }
}